#!/bin/bash

# 内建命令【内置命令】
# 内建命令，就是由 Bash 自身提供的命令，而不是文件系统中的某个可执行文件。
# 可以使用 type 来确定一个命令是否是内建命令。
# *通常，内建命令比外部命令执行得快；
# 执行外部命令时不但会触发磁盘 I/O ，还需要 fork 出一个单独的进程来执行，执行完成后再退出；
# 而执行内建命令相当于调用当前 Shell 进程的一个函数。
type cd # cd is a shell builtin

# 内建命令列表
# :	        扩展参数列表，执行重定向操作
# .	        读取并执行指定文件中的命令（在当前 shell 环境中）
# alias	    为指定命令定义一个别名
# bg	      将作业以后台模式运行
# bind	    将键盘序列绑定到一个 readline 函数或宏
# break	    退出 for、while、select 或 until 循环
# builtin	  执行指定的 shell 内建命令
# caller	  返回活动子函数调用的上下文
# cd	      将当前目录切换为指定的目录
# command	  执行指定的命令，无需进行通常的 shell 查找
# compgen	  为指定单词生成可能的补全匹配
# complete	显示指定的单词是如何补全的
# compopt	  修改指定单词的补全选项
# continue	继续执行 for、while、select 或 until 循环的下一次迭代
# declare	  声明一个变量或变量类型。
# dirs	    显示当前存储目录的列表
# disown	  从进程作业表中刪除指定的作业
# echo	    将指定字符串输出到 STDOUT
# enable	  启用或禁用指定的内建shell命令
# eval	    将指定的参数拼接成一个命令，然后执行该命令
# exec	    用指定命令替换 shell 进程
# exit	    强制 shell 以指定的退出状态码退出
# export	  设置子 shell 进程可用的变量
# fc	      从历史记录中选择命令列表
# fg	      将作业以前台模式运行
# getopts	  分析指定的位置参数
# hash	    查找并记住指定命令的全路径名
# help	    显示帮助文件
# history	  显示命令历史记录
# jobs	    列出活动作业
# kill	    向指定的进程 ID(PID) 发送一个系统信号
# let	      计算一个数学表达式中的每个参数
# local	    在函数中创建一个作用域受限的变量
# logout	  退出登录 shell
# mapfile	  从 STDIN 读取数据行，并将其加入索引数组
# popd	    从目录栈中删除记录
# printf	  使用格式化字符串显示文本
# pushd	    向目录栈添加一个目录
# pwd	      显示当前工作目录的路径名
# read	    从 STDIN 读取一行数据并将其赋给一个变量
# readarray	从 STDIN 读取数据行并将其放入索引数组
# readonly	从 STDIN 读取一行数据并将其赋给一个不可修改的变量
# return	  强制函数以某个值退出，这个值可以被调用脚本提取
# set	      设置并显示环境变量的值和 shell 属性
# shift    	将位置参数依次向下降一个位置
# shopt	    打开/关闭控制 shell 可选行为的变量值
# source	  读取并执行指定文件中的命令（在当前 shell 环境中）
# suspend	  暂停 Shell 的执行，直到收到一个 SIGCONT 信号
# test	    基于指定条件返回退出状态码 0 或 1
# times	    显示累计的用户和系统时间
# trap    	如果收到了指定的系统信号，执行指定的命令
# type	    显示指定的单词如果作为命令将会如何被解释
# typeset	  声明一个变量或变量类型。
# ulimit	  为系统用户设置指定的资源的上限
# umask	    为新建的文件和目录设置默认权限
# unalias	  刪除指定的别名
# unset	    刪除指定的环境变量或 shell 属性
# wait	    等待指定的进程完成，并返回退出状态码